package dcedit.util;

// Import Java SDK Classes
import java.io.*;
import java.util.*;
import java.awt.*;
import javax.swing.*;

// Import DCEdit Classes
import dcedit.DCEdit;
import dcedit.util.DCTextEditor.SyntaxStyle;

/** Constants class */
public class Constants {
   /** Private Constructor */
   private Constants() {} // constructor

   /** Period constant */
   public static final String PERIOD = ".";

   /** Ellipsis constant (replacement for triple periods) */
   public static final String ELLIPSIS = "\u2026";

   /** New line constant */
   public static final String NEW_LINE = "\n";

   /** Skin prefix constant */
   public static final String SKIN_PREFIX = "org.pushingpixels.substance.api.skin.";

   /** LF (look and feel) prefix constant */
   public static final String LF_PREFIX = SKIN_PREFIX + "Substance";

   /** LF (Default) Name constant */
   public static final String LF_DEFAULT_NAME = "Raven";

   /** LF (look and feel) suffix constant */
   public static final String LF_SUFFIX = "LookAndFeel";

   /** Skin suffix constant */
   public static final String SKIN_SUFFIX = "Skin";

   /** LF (look and feel) options array constant */
   public static final String[] LF_OPTIONS = {
      "Autumn",
      "Business Black Steel",
      "Business Blue Steel",
      "Business",
      "Challenger Deep",
      "Creme Coffee",
      "Creme",
      "Dust Coffee",
      "Dust",
      "Emerald Dusk",
      "Gemini",
      "Graphite Aqua",
      "Graphite Glass",
      "Graphite",
      "Magellan",
      "Mariner",
      "Mist Aqua",
      "Mist Silver",
      "Moderate",
      "Nebula Brick Wall",
      "Nebula",
      "Office Black 2007",
      "Office Blue 2007",
      "Office Silver 2007",
      "Raven",
      "Sahara",
      "Twilight"};

   /** Title text constant */
   public static final String TITLE_TEXT = "DCEdit";

   /** Default syntax style (for syntax highlighting) constant */
   public static final SyntaxStyle DEFAULT_SYNTAX_STYLE = DCTextEditor.SyntaxStyle.JAVA;

   /** File text constant */
   public static final String FILE_TEXT = "File";

   /** Exit text constant */
   public static final String EXIT_TEXT = "Exit";

   /** New text constant */
   public static final String NEW_TEXT = "New";

   /** Close text constant */
   public static final String CLOSE_TEXT = "Close";

   /** Close all text constant */
   public static final String CLOSE_ALL_TEXT = "Close All";

   /** Close others text constant */
   public static final String CLOSE_OTHERS_TEXT = "Close Others";

   /** Cancel text constant */
   public static final String CANCEL_TEXT = "Cancel";

   /** Save text constant */
   public static final String SAVE_TEXT = "Save";

   /** Save as text constant */
   public static final String SAVE_AS_TEXT = "Save As";

   /** Save as template text constant */
   public static final String SAVE_AS_TEMPLATE_TEXT = "Save As Template";

   /** Load text constant */
   public static final String LOAD_TEXT = "Load";

   /** Browse text constant */
   public static final String BROWSE_TEXT = "Browse";

   /** Translate template text constant */
   public static final String TRANSLATE_TEMPLATE_TEXT = "Translate Template";

   /** Open text constant */
   public static final String OPEN_TEXT = "Open";

   /** Edit text constant */
   public static final String EDIT_TEXT = "Edit";

   /** Undo text constant */
   public static final String UNDO_TEXT = "Undo";

   /** Redo text constant */
   public static final String REDO_TEXT = "Redo";

   /** Find text constant */
   public static final String FIND_TEXT = "Find";

   /** Replace text constant */
   public static final String REPLACE_TEXT = "Replace";

   /** View environment properties text constant */
   public static final String ENVIRONMENT_PROPERTIES_TEXT = "View Env";

   /** Generate Java Doc text constant */
   public static final String GEN_JAVA_DOC_TEXT = "Gen Java Doc";

   /** Get unique number text constant */
   public static final String GET_UNIQUE_NUM_TEXT = "Get Unique Num";

   /** Dice panel text constant */
   public static final String DICE_PANEL_TEXT = "Roll Dice";

   /** Dice mod panel text constant */
   public static final String DICE_MOD_PANEL_TEXT = "Roll Dice Mod";

   /** Character generation text constant */
   public static final String CHARACTER_GEN_TEXT = "Character Gen";

   /** Encode / Decode text constant */
   public static final String ENCODE_DECODE_TEXT = "Encode / Decode";

   /** Search text constant */
   public static final String SEARCH_TEXT = "Search";

   /** Search Status text constant */
   public static final String SEARCH_STATUS_TEXT = "Search Status";

   /** Search Results text constant */
   public static final String SEARCH_RESULTS_TEXT = "Search Results";

   /** Calculator text constant */
   public static final String CALCULATOR_TEXT = "Calculator";

   /** Look and Feel text constant */
   public static final String LOOK_AND_FEEL_TEXT = "L&F";

   /** HTML text constant */
   public static final String HTML_TEXT = "Html";

   /** Generate HTML template text constant */
   public static final String GEN_HTML_TEMPLATE_TEXT = "Gen HTML Template";

   /** Generate HTML tags text constant */
   public static final String GEN_HTML_TAGS_TEXT = "Gen HTML Tags";

   /** Generate HEAD tags text constant */
   public static final String GEN_HEAD_TAGS_TEXT = "Gen HEAD Tags";

   /** Generate TITLE tags text constant */
   public static final String GEN_TITLE_TAGS_TEXT = "Gen TITLE Tags";

   /** Generate STYLE tags text constant */
   public static final String GEN_STYLE_TAGS_TEXT = "Gen STYLE Tags";

   /** Generate SCRIPT tags text constant */
   public static final String GEN_SCRIPT_TAGS_TEXT = "Gen SCRIPT Tags";

   /** Generate BODY tags text constant */
   public static final String GEN_BODY_TAGS_TEXT = "Gen BODY Tags";

   /** Generate FORM tags text constant */
   public static final String GEN_FORM_TAGS_TEXT = "Gen FORM Tags";

   /** Generate INPUT tag text constant */
   public static final String GEN_INPUT_TAG_TEXT = "Gen INPUT Tag";

   /** Generate IMG tag text constant */
   public static final String GEN_IMG_TAG_TEXT = "Gen IMG Tag";

   /** Java text constant */
   public static final String JAVA_TEXT = "Java";

   public static final String GEN_CLASS_TEMPLATE_TEXT = "Gen Class Template";

   /** Generate class text constant */
   public static final String GEN_CLASS_TEXT = "Gen Class";

   /** Generate frame class text constant */
   public static final String GEN_FRAME_CLASS_TEXT = "Gen Frame Class";

   /** Generate factory class text constant */
   public static final String GEN_FACTORY_CLASS_TEXT = "Gen Factory Class";

   /** Generate enum text constant */
   public static final String GEN_ENUM_TEXT = "Gen Enum";

   /** Generate main method text constant */
   public static final String GEN_MAIN_METHOD_TEXT = "Gen Main Method";

   /** Generate method text constant */
   public static final String GEN_METHOD_TEXT = "Gen Method";

   /** Generate try/catch text constant */
   public static final String GEN_TRY_CATCH_TEXT = "Gen Try/Catch";

   /** Generate try/catch/finally text constant */
   public static final String GEN_TRY_CATCH_FINALLY_TEXT = "Gen Try/Catch/Finally";

   /** Generate System.out.println text constant */
   public static final String GEN_SYSTEM_OUT_TEXT = "Gen Sys/Out";

   /** Generate File Input text constant */
   public static final String GEN_FILE_INPUT_TEXT = "Gen File Input";

   /** Generate File Output text constant */
   public static final String GEN_FILE_OUTPUT_TEXT = "Gen File Output";

   /** Generate Action Listener text constant */
   public static final String GEN_ACTION_LISTENER_TEXT = "Gen Action Listener";

   /** SQL text constant */
   public static final String SQL_TEXT = "SQL";

   /** Custom text constant */
   public static final String CUSTOM_TEXT = "Custom";

   /** Generate select/from/where text constant */
   public static final String GEN_SELECT_FROM_WHERE_TEXT = "Gen SELECT";

   /** Generate insert/into/values text constant */
   public static final String GEN_INSERT_INTO_VALUES_TEXT = "Gen INSERT";

   /** Generate update/set/where text constant */
   public static final String GEN_UPDATE_SET_WHERE_TEXT = "Gen UPDATE";

   /** Generate delete/from/where text constant */
   public static final String GEN_DELETE_FROM_WHERE_TEXT = "Gen DELETE";

   /** Generate cursor text constant */
   public static final String GEN_CURSOR_TEXT = "Gen CURSOR";

   /** Generate join text constant */
   public static final String GEN_JOIN_TEXT = "Gen JOIN";

   /** Generate add column text constant */
   public static final String GEN_ADD_COLUMN_TEXT = "Gen ADD COLUMN";

   /** Generate drop column text constant */
   public static final String GEN_DROP_COLUMN_TEXT = "Gen DROP COLUMN";

   /** Generate alter column text constant */
   public static final String GEN_ALTER_COLUMN_TEXT = "Gen ALTER COLUMN";

   /** Generate drop table or view text constant */
   public static final String GEN_DROP_TABLE_OR_VIEW_TEXT = "Gen DROP TABLE/VIEW";

   /** JavaFX text constant */
   public static final String JAVA_FX_TEXT = "JavaFX";

   /** Python text constant */
   public static final String PYTHON_TEXT = "Python";

   /** Generate JavaFX application class constant */
   public static final String GEN_JAVA_FX_APPLICATION_CLASS_TEXT = "Gen JavaFX Application Class";

   /** Generate JavaFX scene class constant */
   public static final String GEN_JAVA_FX_SCENE_CLASS_TEXT = "Gen JavaFX Scene Class";

   /** Generate JavaFX application class constant */
   public static final String GEN_JAVA_FX_EVENT_HANDLER_TEXT = "Gen JavaFX Event Handler";

   /** Generate Python main script constant */
   public static final String GEN_PYTHON_MAIN_SCRIPT_TEXT = "Gen Python Main Script";

   /** Generate try/except constant */
   public static final String GEN_PYTHON_TRY_EXCEPT_TEXT = "Gen Try/Except";

   /** Generate try/except/finally constant */
   public static final String GEN_PYTHON_TRY_EXCEPT_FINALLY_TEXT = "Gen Try/Except/Finally";

   /** asterisk constant */
   public static final String ASTERISK_CHAR = "*";

   /** New* text constant */
   public static final String NEW_STAR_TEXT = NEW_TEXT + ASTERISK_CHAR;

   /** Less than image constant */
   public static final String LESS_THAN_CHAR = "<";

   /** Greater than image constant */
   public static final String GREATER_THAN_CHAR = ">";

   /** pipe constants */
   public static final String PIPE_CHAR = "|";
   public static final String PIPE_EXP = "\\|";

   /** Bold text constant */
   public static final String BOLD_TEXT = "B";

   /** Italic text constant */
   public static final String ITALIC_TEXT = "I";

   /** Auto-Indent text constant */
   public static final String AUTO_INDENT_TEXT = "AI";

   /** Tooltip font (for all tooltips) constant */
   public static final Font TOOLTIP_FONT = new Font("SansSerif", Font.PLAIN, 14);

   /** Language Tooltip text constant */
   public static final String LANGUAGE_TOOLTIP_TEXT = "<html>Click to select a language.<br/>This is used for syntax highlighting.<br/>If no syntax highlighting is necessary, select None.</html>";

   /** Font name Tooltip text constant */
   public static final String FONT_NAME_TOOLTIP_TEXT = "<html>Click to select a font.</html>";

   /** Font size Tooltip text constant */
   public static final String FONT_SIZE_TOOLTIP_TEXT = "<html>Click to select a font size.</html>";

   /** Dice mod options Tooltip text constant */
   public static final String DICE_MOD_OPTIONS_TOOLTIP_TEXT = "<html>Modify the result set.<br/>Add - Add to the sum of the result set.<br/>Subtract - Subtract from the sum of the result set.<br/>Multiply - Multiply the sum of the result set by a multiplier.<br/>Divide - Divide the sum of the result set by a divisor.<br/>Highest - Only sum the highest number of dice from the result set.<br/>Lowest - Only sum the lowest number of dice from the result set.</html>";

   /** Avatar Tooltip text constant */
   public static final String AVATAR_TOOLTIP_TEXT = "<html>Select character avatar.</html>";

   /** Gender Tooltip text constant */
   public static final String GENDER_TOOLTIP_TEXT = "<html>Select character gender.</html>";

   /** Race Tooltip text constant */
   public static final String RACE_TOOLTIP_TEXT = "<html>Select character race.</html>";

   /** Class Tooltip text constant */
   public static final String CLASS_TOOLTIP_TEXT = "<html>Select character class.</html>";

   /** Zodiac Tooltip text constant */
   public static final String ZODIAC_TOOLTIP_TEXT = "<html>Select character zodiac sign.</html>";

   /** Source Compliance Tooltip text constant */
   public static final String SOURCE_COMPLIANCE_TOOLTIP_TEXT = "<html>Select the JDK version of the source code.</html>";

   /** Visibility Level Tooltip text constant */
   public static final String VISIBILITY_LEVEL_TOOLTIP_TEXT = "<html>Select the visibility level of the source code.</html>";

   /** Character Name Tooltip text constant */
   public static final String CHARACTER_NAME_TOOLTIP_TEXT = "<html>Type in character name.</html>";

   /** Add Tooltip text constant */
   public static final String ADD_NEW_PAGE_TOOLTIP_TEXT = "<html>Add a new page.</html>";

   /** Open Tooltip text constant */
   public static final String OPEN_FILE_TOOLTIP_TEXT = "<html>Open a file.</html>";

   /** Save Tooltip text constant */
   public static final String SAVE_CURRENT_PAGE_TOOLTIP_TEXT = "<html>Save current page.</html>";

   /** Delete Tooltip text constant */
   public static final String DELETE_CURRENT_PAGE_TOOLTIP_TEXT = "<html>Delete current page.</html>";

   /** Bold Tooltip text constant */
   public static final String BOLD_TOOLTIP_TEXT = "Bold";

   /** Italic Tooltip text constant */
   public static final String ITALIC_TOOLTIP_TEXT = "Italic";

   /** Auto-Indent Tooltip text constant */
   public static final String AUTO_INDENT_TOOLTIP_TEXT = "Auto-Indent";

   /** Default font color text constant */
   public static final String DEFAULT_FONT_COLOR = "Default Font Color";

   /** Font color text constant */
   public static final String FONT_COLOR_TEXT = "FG Color";

   /** Background color text constant */
   public static final String BACKGROUND_COLOR_TEXT = "BG Color";

   /** Highlight color text constant */
   public static final String HIGHLIGHT_COLOR_TEXT = "HL Color";

   /** HTML highlight color text constant */
   public static final String HTML_HIGHLIGHT_COLOR_TEXT = "HTML Color";

   /** Java highlight color text constant */
   public static final String JAVA_HIGHLIGHT_COLOR_TEXT = "Java Color";

   /** SQL highlight color text constant */
   public static final String SQL_HIGHLIGHT_COLOR_TEXT = "SQL Color";

   /** Single-comment line text constant */
   public static final String SINGLE_COMMENT_LINE_TEXT = "// Color";

   /** Multi-comment line text constant */
   public static final String MULTI_COMMENT_LINE_TEXT = "/* Color */";

   /** Java-doc comment line text constant */
   public static final String JAVA_DOC_COMMENT_LINE_TEXT = "/** Color */";

   /** Roll dice text constant */
   public static final String ROLL_DICE_TEXT = "Roll";

   /** Roll dice result text constant */
   public static final String ROLL_DICE_RESULTS_TEXT = "Roll Results";

   /** Reset dice text constant */
   public static final String RESET_DICE_TEXT = "Reset";

   /** Close dice dialog text constant */
   public static final String CLOSE_DICE_DIALOG_TEXT = "Close";

   /** Translate dialog text constant */
   public static final String TRANSLATE_DIALOG_TEXT = "Translate";

   /** Character name text constant */
   public static final String NAME_TEXT = "Cha.Name";

   /** Generate stats dialog text constant */
   public static final String GEN_STATS_DIALOG_TEXT = "Gen.Stats";

   /** Font color Tooltip text constant */
   public static final String FONT_COLOR_TOOLTIP_TEXT = "<html>Click to set font color.</html>";

   /** Background color Tooltip text constant */
   public static final String BACKGROUND_COLOR_TOOLTIP_TEXT = "<html>Click to set background color.</html>";

   /** HTML highlight color Tooltip text constant */
   public static final String HTML_HIGHLIGHT_COLOR_TOOLTIP_TEXT = "<html>Click to set HTML<br />syntax highlight color.</html>";

   /** Java highlight color Tooltip text constant */
   public static final String JAVA_HIGHLIGHT_COLOR_TOOLTIP_TEXT = "<html>Click to set Java<br />syntax highlight color.</html>";

   /** SQL highlight color Tooltip text constant */
   public static final String SQL_HIGHLIGHT_COLOR_TOOLTIP_TEXT = "<html>Click to set SQL<br />syntax highlight color.</html>";

   /** Single-comment line Tooltip text constant */
   public static final String SINGLE_COMMENT_LINE_TOOLTIP_TEXT = "<html>Click to set line<br />comment highlight color.</html>";

   /** Multi-comment line Tooltip text constant */
   public static final String MULTI_COMMENT_LINE_TOOLTIP_TEXT = "<html>Click to set block<br />comment highlight color.</html>";

   /** Java-doc comment line Tooltip text constant */
   public static final String JAVA_DOC_COMMENT_LINE_TOOLTIP_TEXT = "<html>Click to set java-doc<br />comment highlight color.</html>";

   /** Roll dice Tooltip text constant */
   public static final String ROLL_DICE_TOOLTIP_TEXT = "Click to roll dice";

   /** Reset dice Tooltip text constant */
   public static final String RESET_DICE_TOOLTIP_TEXT = "Click to reset all dice to zero";

   /** Close dice dialog Tooltip text constant */
   public static final String CLOSE_DICE_DIALOG_TOOLTIP_TEXT = "Click to close the dialog";

   /** Default - begin template expression text constant */
   public static final String DEFAULT_BEGIN_TEMPLATE_EXPRESSION_TEXT = "${";

   /** Default - end template expression text constant */
   public static final String DEFAULT_END_TEMPLATE_EXPRESSION_TEXT = "}";

   /** Begin template expression field constant */
   public static final JTextField BEGIN_TEMPLATE_EXPRESSION_FIELD = new JTextField(DEFAULT_BEGIN_TEMPLATE_EXPRESSION_TEXT, 3);

   /** End template expression field constant */
   public static final JTextField END_TEMPLATE_EXPRESSION_FIELD = new JTextField(DEFAULT_END_TEMPLATE_EXPRESSION_TEXT, 3);

   /** Source directory field for javadoc gen dialog constant */
   public static final JTextField JAVADOC_SOURCE_FIELD = new JTextField();

   /** Destination directory field for javadoc gen dialog constant */
   public static final JTextField JAVADOC_DESTINATION_FIELD = new JTextField();

   /** Pane for displaying javadoc style rules constant */
   public static final JTextPane JAVADOC_STYLE_TEXT_PANE = new JTextPane();

   /** Search path field for search dialog constant */
   public static final JTextField SEARCH_PATH_FIELD = new JTextField();

   /** Search term field for search dialog constant */
   public static final JTextField SEARCH_TERM_FIELD = new JTextField();

   /** Template token table model field constant */
   public static final TemplateTokenTableModel TEMPLATE_TOKEN_TABLE_MODEL = new TemplateTokenTableModel();

   /** Template token table field constant */
   public static final TemplateTokenTable TEMPLATE_TOKEN_TABLE = new TemplateTokenTable(TEMPLATE_TOKEN_TABLE_MODEL);

   /** Character name field constant */
   public static final DCTextField CHARACTER_NAME_FIELD = new DCTextField(NAME_TEXT, 3);

   /** Template token set constant */
   public static final TreeSet<TemplateToken> TEMPLATE_TOKENS = new TreeSet<TemplateToken>();

   /** Translate dialog Tooltip text constant */
   public static final String TRANSLATE_DIALOG_TOOLTIP_TEXT = "<html>Click to close the dialog and proceed with the translation</html>";

   /** Cancel translate dialog Tooltip text constant */
   public static final String CANCEL_TRANSLATE_DIALOG_TOOLTIP_TEXT = "<html>Click to close the dialog and cancel the operation</html>";

   /** Cancel character gen load dialog Tooltip text constant */
   public static final String CANCEL_CHARACTER_GEN_LOAD_DIALOG_TOOLTIP_TEXT = "<html>Click to close the dialog without loading a character</html>";

   /** Gen stats dialog Tooltip text constant */
   public static final String GEN_STATS_DIALOG_TOOLTIP_TEXT = "<html>Click to generate random stats for this character</html>";

   /** Encode / Decode Codec dialog Tooltip text constant */
   public static final String ENCODE_DECODE_CODEC_DIALOG_TOOLTIP_TEXT = "<html>Click to encode / decode the above text<br/>Doing so will replace the existing text</html>";

   /** Cancel Codec dialog Tooltip text constant */
   public static final String CANCEL_CODEC_DIALOG_TOOLTIP_TEXT = "<html>Click to close the dialog</html>";

   /** Cancel Search dialog Tooltip text constant */
   public static final String CANCEL_SEARCH_DIALOG_TOOLTIP_TEXT = "<html>Click to close the dialog</html>";

   /** Generate Javadoc dialog Tooltip text constant */
   public static final String GEN_JAVADOC_DIALOG_TOOLTIP_TEXT = "<html>Click to generate javadocs</html>";

   /** Cancel Javadoc dialog Tooltip text constant */
   public static final String CANCEL_JAVADOC_DIALOG_TOOLTIP_TEXT = "<html>Click to close the dialog</html>";

   /** Browse Tooltip text constant */
   public static final String BROWSE_TOOLTIP_TEXT = "<html>Click to browse files/folders</html>";

   /** Search Tooltip (for searching) text constant */
   public static final String SEARCH_SEARCH_DIALOG_TOOLTIP_TEXT = "<html>Click to search files/folders in the path, for any lines which contain the search term</html>";

   /** Image path constant */
   public static final String IMAGE_PATH = "/img/";

   /** Splash image constant */
   public static final String SPLASH_IMAGE = IMAGE_PATH + "splash.png";

   /** Add image constant */
   public static final String ADD_IMAGE = IMAGE_PATH + "add-32.png";

   /** Add image constant */
   public static final String ADD_IMAGE_HOVER = IMAGE_PATH + "add-32-hover.png";

   /** Add image constant */
   public static final String ADD_IMAGE_CLICK = IMAGE_PATH + "add-32-click.png";

   /** Folder image constant */
   public static final String FOLDER_IMAGE = IMAGE_PATH + "folder-32.png";

   /** Folder image constant */
   public static final String FOLDER_IMAGE_HOVER = IMAGE_PATH + "folder-32-hover.png";

   /** Folder image constant */
   public static final String FOLDER_IMAGE_CLICK = IMAGE_PATH + "folder-32-click.png";

   /** Save image constant */
   public static final String SAVE_IMAGE = IMAGE_PATH + "save-32.png";

   /** Save image constant */
   public static final String SAVE_IMAGE_HOVER = IMAGE_PATH + "save-32-hover.png";

   /** Save image constant */
   public static final String SAVE_IMAGE_CLICK = IMAGE_PATH + "save-32-click.png";

   /** Cancel image constant */
   public static final String CANCEL_IMAGE = IMAGE_PATH + "cancel-32.png";

   /** Cancel image constant */
   public static final String CANCEL_IMAGE_HOVER = IMAGE_PATH + "cancel-32-hover.png";

   /** Cancel image constant */
   public static final String CANCEL_IMAGE_CLICK = IMAGE_PATH + "cancel-32-click.png";

   /** Sprite-Image path constant */
   public static final String SPRITE_IMAGE_PATH = IMAGE_PATH + "sprites/";

   /** Dice-Image path constant */
   public static final String DICE_IMAGE_PATH = IMAGE_PATH + "dice/";

   /** Sprites image constant */
   public static OmniImage[] SPRITES = {
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite001.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite002.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite003.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite004.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite005.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite006.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite007.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite008.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite009.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite010.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite011.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite012.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite013.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite014.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite015.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite016.png")),
      new OmniImage(DCEdit.class.getResource(SPRITE_IMAGE_PATH + "sprite017.png"))
   };

   /** Sprite image spinner constant */
   public static final ImageSpinner SPRITE_SPINNER = new ImageSpinner(Constants.SPRITES);

   /** Panel pad number constant */
   public static final int PANEL_PAD = 3;

   /** List of all known font names constant */
   public static final String[] FONT_NAMES = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();

   /** List of all font sizes constant */
   public static final Integer[] FONT_SIZES = {
      10,
      11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
      21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
      31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
      45, 50, 55, 60, 65, 70, 75, 80, 85, 90
   };

   /** Mod options (for the dice mod dialog) constant */
   public static final String[] DICE_MOD_OPTIONS = new String[] {"None", "Add", "Subtract", "Multiply", "Divide", "Highest", "Lowest"};

   /** List of genders constant */
   public static final String[] GENDERS = {"Male", "Female"};

   /** List of races constant */
   public static final String[] RACES = {"Human", "Elf", "Half-Elf", "Dwarf", "Gnome", "Ogre", "Lycan", "Vampire", "Fallen"};

   /** List of classes constant */
   public static final String[] CLASSES = {"Fighter", "Paladin", "Cleric", "Mage", "Monk", "Rogue", "Archer"};

   /** List of zodiac signs constant */
   public static final String[] ZODIAC_SIGNS = {"Aquarius", "Pisces", "Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo", "Libra", "Scorpio", "Sagittarius", "Capricorn"};

   /** List of Java source compliance levels constant */
   public static final String[] SOURCE_COMPLIANCE_LEVELS = {"1.7", "1.6", "1.5", "1.4", "1.3", "1.2"};

   /** List of Java visibility levels constant */
   public static final String[] VISIBILITY_LEVELS = {"private", "package", "protected", "public"};

   /** Language list constant */
   public static final JComboBox<DCTextEditor.SyntaxStyle> LANGUAGE_LIST = new JComboBox<>(DCTextEditor.SyntaxStyle.values());

   /** Font name list constant */
   public static final JComboBox<String> FONT_NAME_LIST = new JComboBox<>(FONT_NAMES);

   /** Font size list constant */
   public static final JComboBox<Integer> FONT_SIZE_LIST = new JComboBox<>(FONT_SIZES);

   /** Dice mod options (for the dice mod dialog) constant */
   public static final JComboBox<String> DICE_MOD_OPTIONS_LIST = new JComboBox<>(DICE_MOD_OPTIONS);

   /** Gender list constant */
   public static final JComboBox<String> CHARACTER_GENDER_LIST = new JComboBox<>(GENDERS);

   /** Races list constant */
   public static final JComboBox<String> CHARACTER_RACES_LIST = new JComboBox<>(RACES);

   /** Classes list constant */
   public static final JComboBox<String> CHARACTER_CLASSES_LIST = new JComboBox<>(CLASSES);

   /** Zodiac sign list constant */
   public static final JComboBox<String> ZODIAC_LIST = new JComboBox<>(ZODIAC_SIGNS);

   /** Java source compliance list constant */
   public static final JComboBox<String> SOURCE_COMPLIANCE_LIST = new JComboBox<>(SOURCE_COMPLIANCE_LEVELS);

   /** Java visibility levels list constant */
   public static final JComboBox<String> VISIBILITY_LEVEL_LIST = new JComboBox<>(VISIBILITY_LEVELS);

   /** Codec tab label constant */
   public static final JLabel CODEC_LABEL = new JLabel("<html>Enter text to encode or decode.<br/>Select conversion type.<br/>Click encode/decode.</html>");

   /** Codec text area constant */
   public static final JTextArea CODEC_TEXT_AREA = new JTextArea();

   /** Codec combo box constant */
   public static final JComboBox<String> CODEC_COMBO_BOX = new JComboBox<>();

   /** Bold btn constant */
   public static final JToggleButton BOLD_BTN = new JToggleButton(BOLD_TEXT);

   /** Italic btn constant */
   public static final JToggleButton ITALIC_BTN = new JToggleButton(ITALIC_TEXT);

   /** Auto-Indent btn constant */
   public static final JToggleButton AUTO_INDENT_BTN = new JToggleButton(AUTO_INDENT_TEXT);

   /** Font color btn constant */
   public static final JButton FONT_COLOR_BTN = new JButton(FONT_COLOR_TEXT);

   /** Background color btn constant */
   public static final JButton BACKGROUND_COLOR_BTN = new JButton(BACKGROUND_COLOR_TEXT);

   /** Highlight color btn constant */
   public static final JButton HIGHLIGHT_COLOR_BTN = new JButton(HIGHLIGHT_COLOR_TEXT);

   /** HTML highlight color btn constant */
   public static final JButton HTML_HIGHLIGHT_COLOR_BTN = new JButton(HTML_HIGHLIGHT_COLOR_TEXT);

   /** Java highlight color btn constant */
   public static final JButton JAVA_HIGHLIGHT_COLOR_BTN = new JButton(JAVA_HIGHLIGHT_COLOR_TEXT);

   /** SQL highlight color btn constant */
   public static final JButton SQL_HIGHLIGHT_COLOR_BTN = new JButton(SQL_HIGHLIGHT_COLOR_TEXT);

   /** Single-comment line btn constant */
   public static final JButton SINGLE_COMMENT_LINE_BTN = new JButton(SINGLE_COMMENT_LINE_TEXT);

   /** Multi-comment line btn constant */
   public static final JButton MULTI_COMMENT_LINE_BTN = new JButton(MULTI_COMMENT_LINE_TEXT);

   /** Java-doc comment line btn constant */
   public static final JButton JAVA_DOC_COMMENT_LINE_BTN = new JButton(JAVA_DOC_COMMENT_LINE_TEXT);

   /** Tab pane constant */
   public static final JTabbedPane TAB_PANE = new JTabbedPane();

   /** File chooser constant */
   public static final JFileChooser FILE_CHOOSER = new JFileChooser(File.separator); // Start at root of filesystem.

   /** File chooser size constant */
   public static final Dimension FILE_CHOOSER_SIZE = new Dimension(800, 600);

   /** Message to display on a dirty-save constant */
   public static final String DIRTY_SAVE_MESSAGE_TEXT = "The pane has been updated since the last save.  Would you like to save this document before closing it?";

   /** Color constant for determining if a sum of RGB quantities is considered dark or not */
   public static final int DARK_COLOR_THRESHOLD = 999;

   /** Operating system */
   public static final String OPERATING_SYSTEM_PROPERTY = "OS";

   /** Windows designator */
   public static final String WINDOWS_PROPERTY = "win";

   /** Line separator property constant */
   public static final String LINE_SEPARATOR_PROPERTY = "line.separator";

   /** User name property constant */
   public static final String USER_NAME_PROPERTY = "user.name";

   /** User home path property constant */
   public static final String USER_HOME_PATH_PROPERTY = "user.home";

   /** DCEdit config path */
   public static final String DCEDIT_CONFIG_DIR = ".dcedit";

   /** Colors config path */
   public static final String COLOR_CONFIG_SER = "colors.ser";

   /** Font config path */
   public static final String FONT_CONFIG_SER = "fonts.ser";

   /** Character file prefix constant */
   public static final String CHARACTER_PREFIX = "Character_";

   /** Serialize file suffix constant */
   public static final String SER_SUFFIX = ".ser";

   /** Templates path constant */
   public static final String TEMPLATES_PATH = "/templates";

   /** Template file suffix constant */
   public static final String TEMPLATE_SUFFIX = ".template";

   /** Environment text constant */
   public static final String ENV_TEXT = "Env";

   /** New Distinct Num text constant */
   public static final String NEW_DISTINCT_NUM_TEXT = "New Num";

   /** Dice Dialog title constant */
   public static final String DICE_DIALOG_TITLE = "Dice Dialog";

   /** Dice Mod Dialog title constant */
   public static final String DICE_MOD_DIALOG_TITLE = "Dice Mod Dialog";

   /** Character Generation title constant */
   public static final String CHARACTER_GEN_TITLE = "Character Generation";

   /** Character Selection title constant */
   public static final String CHARACTER_SELECTION_TITLE = "Character Selection";

   /** Translate Template Dialog title constant */
   public static final String TRANSLATE_TEMPLATE_DIALOG_TITLE = "Translate Template Dialog";

   /** Translate Token Dialog title constant */
   public static final String TRANSLATE_TOKEN_DIALOG_TITLE = "Translate Token Dialog";

   /** Encode / Decode Dialog title constant */
   public static final String ENCODE_DECODE_DIALOG_TITLE = "Encode / Decode";

   /** JavaDoc Generation Dialog title constant */
   public static final String JAVA_DOC_GEN_TITLE = "Generate JavaDoc";

   /** New random number generator constant */
   public static final Random RANDOM_GENERATOR = new Random(System.currentTimeMillis());

   /** Dice Spinner List constants */
   public static final IntegerSpinner[] DICE_SPINNERS = {
      new IntegerSpinner("D4"),
      new IntegerSpinner("D6"),
      new IntegerSpinner("D8"),
      new IntegerSpinner("D10"),
      new IntegerSpinner("D12"),
      new IntegerSpinner("D20"),
      new IntegerSpinner("D100")
   };

   /** Dice Quantity Spinner (for dice mod dialog) constant */
   public static final IntegerSpinner DICE_QTY_SPINNER = new IntegerSpinner();

   /** Dice Num Sides Spinner (for dice mod dialog) constant */
   public static final IntegerSpinner DICE_NUM_SIDES_SPINNER = new IntegerSpinner();

   /** Dice Mod Spinner (for dice mod dialog) constant */
   public static final IntegerSpinner DICE_MOD_SPINNER = new IntegerSpinner();

   /** Character Statistics List constants */
   public static final DCTextField[] CHARACTER_STAT_LIST = {
      new DCTextField("Phys.Str", 2),
      new DCTextField("Phys.Def", 2),
      new DCTextField("Mag.Str", 2),
      new DCTextField("Mag.Def", 2),
      new DCTextField("Agility", 2),
      new DCTextField("Constitution", 2),
      new DCTextField("Charisma", 2)
   };

   /** Dice Stats Label constant */
   public static final String GEN_DICE_STATS_LABEL = "Gen Stats";

   /** Dice Stats CheckBox constant */
   public static final JCheckBox GEN_DICE_STATS_CHECK_BOX = new JCheckBox(GEN_DICE_STATS_LABEL);

   /** Recursive Search CheckBox for Search Dialog constant */
   public static final JCheckBox RECURSIVE_SEARCH_CHECK_BOX = new JCheckBox("Recursive Search", true);

   /** Case Sensitive CheckBox for Search Dialog constant */
   public static final JCheckBox CASE_SENSITIVE_CHECK_BOX = new JCheckBox("Case Sensitive");

   /** Regular Expression CheckBox for Search Dialog constant */
   public static final JCheckBox REGULAR_EXPRESSION_CHECK_BOX = new JCheckBox("Regular Expression");

   /** Search file list text area constant */
   public static final JTextArea SEARCH_FILE_LIST_FIELD = new JTextArea(".zip .jar .class .gzip .db .msi .exe .tar .rar .war .ear .dll .jpg .gif .png \n");

   /** Search file list exclude radio button constant */
   public static final JRadioButton SEARCH_FILE_LIST_EXCLUDE_BTN = new JRadioButton("Exclude", true);

   /** Search file list include radio button constant */
   public static final JRadioButton SEARCH_FILE_LIST_INCLUDE_BTN = new JRadioButton("Include");

   /** Progress Bar for Search Dialog constant */
   public static final JProgressBar SEARCH_PROGRESS_BAR = new JProgressBar(0, 100);
} // END class Constants
